Creating Links and Link Modules for Analysis...

What is the logic behind creating link modules in setting up full traceability on three levels of modules.

Here is my module (requirements) heirarchy:
1. Allocated <links to> Derived
2. Derived <links to> Design

The links for #1 above reside in DOORS Link module in the Allocated folder. The links for #2 reside in teh Derived folder.

When I run the Analysis Wizard to create a view, I can only create the trace from Allocated to Derived on the view, not all the way to Design.

Do all of these links need to reside in one link module to accomplish the full trace in a view? Thanks for a reply....
gkane - Tue Dec 21 11:51:21 EST 2010

Re: Creating Links and Link Modules for Analysis...
SystemAdmin - Tue Dec 21 19:29:50 EST 2010

"When I run the Analysis Wizard to create a view, I can only create the trace from Allocated to Derived on the view, not all the way to Design."

Two things to look out for in the Analysis Wizard - this is with respect the wizards steps.

Step 2 "Scope of Analysis": Make sure that the Select link module radio button option is set to All Modules

Step 4 "Other Information": Make sure that Recursive analysis check box is selected, set the depth of analysis to 2. This will create a column where links that are at depth 2 are indented\nested in the column. If you don't like this nesting, try again and select the Multiple Columns check box and see if that looks better.

The assumption here is that your running the wizard either from a formal module at the Design level to see links all the way to modules in the Allocated level, or from a formal module at the Allocated level to see links all the way down to modules in the Design level.

Also - your posting suggests that you're only using the default DOORS name for link modules - namely "DOORS Links". The best practice for naming link modules is to name them after the relationship that they are dedicated to - in your case, perhaps #1 should be named "Allocated To Derived". It's not recommended to cram all links into one link module, this can come back to bite you in many ways. Possibly also a good idea to put all link modules into a dedicated folder so that they can be easily found - but this all assumes that your taking advantage of the "Linksets" feature of each module where-by you can set rules about what link modules should be used when linking to specified target modules - a very handy feature of DOORS, worth reading up on.


Paul Miller
Melbourne, Australia

Re: Creating Links and Link Modules for Analysis...
llandale - Wed Dec 22 01:23:40 EST 2010

A link represents a relationship and the general way to describe what that relationship is is to use different link modules. In your case you should want to specify what the relationship is between 'Allocated' and 'Derived', perhaps it means 'Justifies' or 'Drives' or 'Is Parent Req To'. I suspect that's the same relationship between Derived and Design.

So create a single 'Justifies Links' module in your project's top level folder '/Link Modules/' and create the links there. You would then use the traceability wizard to trace all 'Justifies' links.

DOORS links is a disaster. Might as well create a DOORS Links module in every folder and deleted it, to prevent folks from using it. That notion is a left over artifact from DOORS v4 days which had no folders at all. Someday when I grow up I'm going to create a top level link module in every project "I Don't know what I'm doing" and force that as the default link module in ever user ... I mean "/I Don't know what I'm doing" and have a nightly script that updates each user to have that as their default. When they do figure out what they are doing we can move that linkset to the correct link module.

PS, I think your links are going in the wrong direction as it seems likely to me that the 'Design' owners will decide the text in their 'Design' module and will decide which 'Derived' requirements they 'Satisfy'; and since the owner of the link is the one 'sourcing' it it, the links would go from Design to Derived. Another way to look at it is that the 'Derived' folks create their specirfication (module) and throw it over the wall to the Design folks who can read it but not modify it, and therefore cannot source any links there.

  • Louie

Re: Creating Links and Link Modules for Analysis...
lupsanto - Tue Feb 01 07:55:51 EST 2011

llandale - Wed Dec 22 01:23:40 EST 2010
A link represents a relationship and the general way to describe what that relationship is is to use different link modules. In your case you should want to specify what the relationship is between 'Allocated' and 'Derived', perhaps it means 'Justifies' or 'Drives' or 'Is Parent Req To'. I suspect that's the same relationship between Derived and Design.

So create a single 'Justifies Links' module in your project's top level folder '/Link Modules/' and create the links there. You would then use the traceability wizard to trace all 'Justifies' links.

DOORS links is a disaster. Might as well create a DOORS Links module in every folder and deleted it, to prevent folks from using it. That notion is a left over artifact from DOORS v4 days which had no folders at all. Someday when I grow up I'm going to create a top level link module in every project "I Don't know what I'm doing" and force that as the default link module in ever user ... I mean "/I Don't know what I'm doing" and have a nightly script that updates each user to have that as their default. When they do figure out what they are doing we can move that linkset to the correct link module.

PS, I think your links are going in the wrong direction as it seems likely to me that the 'Design' owners will decide the text in their 'Design' module and will decide which 'Derived' requirements they 'Satisfy'; and since the owner of the link is the one 'sourcing' it it, the links would go from Design to Derived. Another way to look at it is that the 'Derived' folks create their specirfication (module) and throw it over the wall to the Design folks who can read it but not modify it, and therefore cannot source any links there.

  • Louie

Dear All,

I would like to know if you guys can help me.

In my case I have the following scenario:

1. Allocated <is linked by> Derived (IN LINK)
2. Derived <links to> Design (OUT LINK).

I want to create a view in ALLOCATED formal module that show the respective attribute that is in DESIGN.

Example: ALLOCATED "1" linked by DERIVED "2" that link DESIGN "3".
So, I want to show in ALLOCATED "1" | "3".

I tried to create a DXL script, but I didnt figure out how to make a link from a link.

Thanks.

Re: Creating Links and Link Modules for Analysis...
gkane - Tue Feb 01 09:14:11 EST 2011

lupsanto - Tue Feb 01 07:55:51 EST 2011
Dear All,

I would like to know if you guys can help me.

In my case I have the following scenario:

1. Allocated <is linked by> Derived (IN LINK)
2. Derived <links to> Design (OUT LINK).

I want to create a view in ALLOCATED formal module that show the respective attribute that is in DESIGN.

Example: ALLOCATED "1" linked by DERIVED "2" that link DESIGN "3".
So, I want to show in ALLOCATED "1" | "3".

I tried to create a DXL script, but I didnt figure out how to make a link from a link.

Thanks.

Try this link...I think it may help you.

GK

http://publib.boulder.ibm.com/infocenter/ieduasst/rtnv1r0/index.jsp?topic=/com.ibm.iea.doors/plugin_coverpage.html

Re: Creating Links and Link Modules for Analysis...
gkane - Tue Feb 01 09:18:18 EST 2011

gkane - Tue Feb 01 09:14:11 EST 2011
Try this link...I think it may help you.

GK

http://publib.boulder.ibm.com/infocenter/ieduasst/rtnv1r0/index.jsp?topic=/com.ibm.iea.doors/plugin_coverpage.html

...continued

When you get to the page....under "Rational DOORS" --> "V9.2", click "Usability"....on the next page, click "Showing traceability for different directions" demonstration.

GK

Re: Creating Links and Link Modules for Analysis...
lupsanto - Wed Feb 02 05:52:47 EST 2011

gkane - Tue Feb 01 09:18:18 EST 2011
...continued

When you get to the page....under "Rational DOORS" --> "V9.2", click "Usability"....on the next page, click "Showing traceability for different directions" demonstration.

GK

Thanks you, but it works just in the directions.

I got a DXL script that works weel.

See the topic below:
Link: http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14577755>

Re: Creating Links and Link Modules for Analysis...
SR-ITC - Wed Mar 23 07:38:27 EDT 2011

lupsanto - Wed Feb 02 05:52:47 EST 2011
Thanks you, but it works just in the directions.

I got a DXL script that works weel.

See the topic below:
Link: http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14577755>

the link you mentioned is no longer working. Anything I can search for?

Re: Creating Links and Link Modules for Analysis...
Mathias Mamsch - Wed Mar 23 08:14:31 EDT 2011

SR-ITC - Wed Mar 23 07:38:27 EDT 2011
the link you mentioned is no longer working. Anything I can search for?

The hyperlink was wrong: http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14577755
There was a > at the end.

Regards, Mathias

Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS

Re: Creating Links and Link Modules for Analysis...
lupsanto - Wed Mar 23 08:16:12 EDT 2011

SR-ITC - Wed Mar 23 07:38:27 EDT 2011
the link you mentioned is no longer working. Anything I can search for?

You have to do a loop inside a loop.

See below the example.

This code is to read the modules... you have to repeat this in order to read de objects...
 

// check status
   if ((current Project) != null)
    {
    string sCPModulePath = null
        Module m = current
        string this_module = fullName(m)
 
 
        // ensure proposal module is open
        
                        LinkRef lr
                        Link OUT
 
            // process in-links
            for lr in (obj <- S_MOD_CPLINKS_PATH()) do 
            {
                sCPModulePath = fullName(source lr)
 
                                        // only relevant if module exists with r access
                                 if (exists(module sCPModulePath) == true)
                                {
                                                // only relevant if module is closed
                                                if (open(module sCPModulePath) == false)
                                                        {
                                                        // ensure module is open 
                                                        read(sCPModulePath, false)
                                                        }
                                                        break           
 
                                }
        }

 

Now repeat the code in order to read the respective objects in "lr" and "out".